/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fracciones;

import fraccion.Fraccion;
import java.io.IOException;
import utilidades.*;

/**
 *
 * @author Administrador
 */
public class Fracciones {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {

        int operacion = menu();
        while (operacion != 0) {
            try {
                if (operacion >= 1 && operacion <= 5) {
                    System.out.println("primera fracciÃ³n\nnumerador ");
                    int numerador = ManejaConsola.leeEntero();
                    System.out.print("denominador ");
                    int denominador = ManejaConsola.leeEntero();
                    Fraccion fraccion1 = new Fraccion(numerador, denominador);
                    Fraccion fraccion2 = null;
                    if (operacion <= 4) {
                        System.out.println("segunda fracciÃ³n\nnumerador ");
                        numerador = ManejaConsola.leeEntero();
                        boolean incorrecto = false;
                        do {
                            try {
                                System.out.print("denominador ");
                                denominador = ManejaConsola.leeEntero();
                                fraccion2 = new Fraccion(numerador, denominador);
                                incorrecto = false;
                            } catch (ArithmeticException ex) {
                                incorrecto = true;
                                System.out.println(ex.getMessage());
                            }
                        } while (incorrecto);
                    }
                    String cadOperacion = null;
                    Fraccion resultado = null;
                    switch (operacion) {
                        case 1:
                            cadOperacion = " + ";
                            resultado = fraccion1.sumarFracciones(fraccion2);
                            break;
                        case 2:
                            cadOperacion = " - ";
                            resultado = fraccion1.restaFracciones(fraccion2);
                            break;
                        case 3:
                            cadOperacion = " * ";
                            resultado = fraccion1.multiplicaFracciones(fraccion2);
                            break;
                        case 4:
                            cadOperacion = " / ";
                            resultado = fraccion1.divideFracciones(fraccion2);
                            break;
                        case 5:
                            System.out.print(fraccion1 + " = ");
                            fraccion1.simplificarFracciones();
                            System.out.println(fraccion1);
                            break;
                    }
                    if (operacion < 5) {
                        System.out.println(fraccion1 + cadOperacion + fraccion2 + " = " + resultado);
                    }
                }
            } catch (ArithmeticException ex) {
                System.out.println(ex.getMessage());
            }
            operacion = menu();
        }
    }

    /**
     * menÃº de operaciones.
     *
     * @return el nÃºmero de la operaciÃ³n a realizar
     */
    private static int menu() throws IOException {
        System.out.println("1- sumar\n2- restar\n3- multiplicar\n"
                + "4- dividir\n5- simplificar\n0- salir\nOPCIÃ“N: ");
        int opcion = ManejaConsola.leeEntero();
        return opcion;
    }
}
